Skip to content

Fix CPAN runtime compatibility across threads - #951

Merged
fglock merged 5 commits into
masterfrom
fix/cpan-compiler-tooling-modules
Aug 14, 2026
Merged

Fix CPAN runtime compatibility across threads#951
fglock merged 5 commits into
masterfrom
fix/cpan-compiler-tooling-modules

Conversation

@fglock

@fglock fglock commented Aug 13, 2026

Copy link
Copy Markdown
Owner

Summary

  • implement B::SV::object_2svref using an interpreter-local weak address registry
  • preserve observed reference-address mappings across ithread snapshots before CLONE hooks
  • use identity-based addresses consistently for reference stringification and refaddr
  • retain parser-installed named subroutine captures while their CV remains in the stash
  • expose POSIX::DBL_EPSILON and POSIX::LDBL_EPSILON
  • add system-Perl-validated regression tests for all three runtime/compiler issues

Verification

  • make
  • ./jcpan -t Crypt::Rijndael::PP — 29 files, 32 tests, PASS
  • ./jcpan -t Math::Numerical — 5 files, 31 tests, PASS
  • ./jcpan -t Chemistry::3DBuilder — 2 files, 14 tests, PASS
  • ./jcpan -t Date::Gregorian — 9 files, 719 tests, PASS
  • corresponding distributions also pass under system Perl

No distribution preferences were added. Chemistry already worked through the existing dependency resolver; the fixes are shared compiler/runtime/tooling changes.

@fglock
fglock force-pushed the fix/cpan-compiler-tooling-modules branch 3 times, most recently from f25e099 to b51f6ad Compare August 14, 2026 11:29
fglock and others added 3 commits August 14, 2026 15:42
Implement B::SV address recovery for observed references, carry those
addresses through ithread snapshots, account for parser-installed named
subroutine stash ownership, and expose POSIX floating-point epsilon constants.

Generated with Codex (https://openai.com/codex)

Co-Authored-By: Codex <codex@openai.com>
Run the heavy pat and psycho cases in the exclusive test lane, and give
their threaded variants plus speed_thr the same minimum timeout as their
non-threaded counterparts.

Generated with [Codex](https://openai.com/codex)

Co-Authored-By: Codex <codex@openai.com>
Keep origin's runtime-scoped B object registry as the primary lookup and
fall back to the inherited-address map for ithread-cloned referents.

Generated with [Codex](https://openai.com/codex)

Co-Authored-By: Codex <codex@openai.com>
@fglock
fglock force-pushed the fix/cpan-compiler-tooling-modules branch from c8ced5d to d0fb5d9 Compare August 14, 2026 14:11
fglock and others added 2 commits August 14, 2026 17:25
Redirect each jperl test subprocess from the platform null device so GNU
timeout process groups cannot be stopped by SIGTTIN during interactive runs.

Generated with [Codex](https://openai.com/codex)

Co-Authored-By: Codex <codex@openai.com>
Keep origin's hash-backed B::SV::object_2svref implementation and remove the
obsolete pre-rebase definition whose warning contaminated core test output.

Generated with [Codex](https://openai.com/codex)

Co-Authored-By: Codex <codex@openai.com>
@fglock
fglock merged commit 9ce0407 into master Aug 14, 2026
2 checks passed
@fglock
fglock deleted the fix/cpan-compiler-tooling-modules branch August 14, 2026 17:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant